Fix problems when creating HVM guest on PAE host with >4G physical memory.
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Thu, 2 Mar 2006 10:03:34 +0000 (11:03 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Thu, 2 Mar 2006 10:03:34 +0000 (11:03 +0100)
Signed-off-by: Yunhong Jiang yunhong.jiang@intel.com
Signed-off-by: Jun Nakajima jun.nakajima@intel.com
xen/arch/x86/shadow_public.c

index d84e70710245745f62db1758b42642bfb7db93ec..63a507c631e2c96b1f06d36eecbd7e3d157a1674 100644 (file)
@@ -413,7 +413,8 @@ static void alloc_monitor_pagetable(struct vcpu *v)
             (l3e_get_flags(mpl3e[i]) & _PAGE_PRESENT) ?
             l2e_from_pfn(l3e_get_pfn(mpl3e[i]), __PAGE_HYPERVISOR) :
             l2e_empty();
-    mpl2e[l2_table_offset(RO_MPT_VIRT_START)] = l2e_empty();
+    for ( i = 0; i < (MACHPHYS_MBYTES >> (L2_PAGETABLE_SHIFT - 20)); i++ )
+        mpl2e[l2_table_offset(RO_MPT_VIRT_START) + i] = l2e_empty();
 
     v->arch.monitor_table = mk_pagetable(m3mfn << PAGE_SHIFT); /* < 4GB */
     v->arch.monitor_vtable = (l2_pgentry_t *) mpl3e;